home *** CD-ROM | disk | FTP | other *** search
/ TeX 1995 July / TeX CD-ROM July 1995 (Disc 1)(Walnut Creek)(1995).ISO / biblio / bibtex / contrib / phy-bstyles / pf.bst < prev    next >
Text File  |  1992-06-14  |  19KB  |  1,029 lines

  1. %% #define PF 1        % Thu Jun 14 13:22:41 1990
  2. %% #include "TEX$ROOT:[BIBTEX]PHYSICS.BTX"
  3.     % Please notify Charles Karney (Karney@Princeton.EDU)
  4.     % of any bugs, improvements, etc.
  5.  
  6.     % For Physics of Fluids, which now wants ALL the authors
  7.     %  (Same as AIP but infinite names, abbreviate pages, and
  8.     %  alternate incollection)
  9.  
  10.     % version 0.99b for BibTeX versions 0.99a or later, LaTeX version 2.09.
  11.     % Copyright (C) 1985, all rights reserved.
  12.     % Copying of this file is authorized only if either
  13.     % (1) you make absolutely no changes to your copy, including name, or
  14.     % (2) if you do make changes, you name it something other than
  15.     % btxbst.doc, plain.bst, unsrt.bst, alpha.bst, and abbrv.bst.
  16.     % This restriction helps ensure that all standard styles are identical.
  17.     % The file btxbst.doc has the documentation for this style.
  18.  
  19. ENTRY
  20.   { address
  21.     author
  22.     booktitle
  23.     chapter
  24.     edition
  25.     editor
  26.     howpublished
  27.     institution
  28.     journal
  29.     key
  30.     month
  31.     note
  32.     number
  33.     organization
  34.     pages
  35.     publisher
  36.     school
  37.     series
  38.     title
  39.     type
  40.     volume
  41.     year
  42.   }
  43.   {}
  44.   { label }
  45.  
  46. INTEGERS { output.state before.all mid.sentence after.sentence after.block }
  47.  
  48. FUNCTION {init.state.consts}
  49. { #0 'before.all :=
  50.   #1 'mid.sentence :=
  51.   #2 'after.sentence :=
  52.   #3 'after.block :=
  53. }
  54.  
  55. STRINGS { s t }
  56.  
  57. FUNCTION {output.nonnull}
  58. { 's :=
  59.   output.state mid.sentence =
  60.     { ", " * write$ }
  61.     { output.state after.block =
  62.     { "," * write$
  63.       newline$
  64.       "\newblock " write$
  65.     }
  66.     { output.state before.all =
  67.         'write$
  68.         { add.period$ " " * write$ }
  69.       if$
  70.     }
  71.       if$
  72.       mid.sentence 'output.state :=
  73.     }
  74.   if$
  75.   s
  76. }
  77.  
  78. FUNCTION {output}
  79. { duplicate$ empty$
  80.     'pop$
  81.     'output.nonnull
  82.   if$
  83. }
  84.  
  85. FUNCTION {output.check}
  86. { 't :=
  87.   duplicate$ empty$
  88.     { pop$ "empty " t * " in " * cite$ * warning$ }
  89.     'output.nonnull
  90.   if$
  91. }
  92.  
  93. FUNCTION {output.bibitem}
  94. { newline$
  95.   "\bibitem{" write$
  96.   cite$ write$
  97.   "}" write$
  98.   newline$
  99.   ""
  100.   before.all 'output.state :=
  101. }
  102.  
  103. FUNCTION {fin.entry}
  104. { add.period$
  105.   write$
  106.   newline$
  107. }
  108.  
  109. FUNCTION {new.block}
  110. { output.state before.all =
  111.     'skip$
  112.     { after.block 'output.state := }
  113.   if$
  114. }
  115.  
  116. FUNCTION {new.sentence}
  117. { skip$
  118. }
  119.  
  120. FUNCTION {not}
  121. {   { #0 }
  122.     { #1 }
  123.   if$
  124. }
  125.  
  126. FUNCTION {and}
  127. {   'skip$
  128.     { pop$ #0 }
  129.   if$
  130. }
  131.  
  132. FUNCTION {or}
  133. {   { pop$ #1 }
  134.     'skip$
  135.   if$
  136. }
  137.  
  138. FUNCTION {new.block.checka}
  139. { empty$
  140.     'skip$
  141.     'new.block
  142.   if$
  143. }
  144.  
  145. FUNCTION {new.block.checkb}
  146. { empty$
  147.   swap$ empty$
  148.   and
  149.     'skip$
  150.     'new.block
  151.   if$
  152. }
  153.  
  154. FUNCTION {new.sentence.checka}
  155. { empty$
  156.     'skip$
  157.     'new.sentence
  158.   if$
  159. }
  160.  
  161. FUNCTION {new.sentence.checkb}
  162. { empty$
  163.   swap$ empty$
  164.   and
  165.     'skip$
  166.     'new.sentence
  167.   if$
  168. }
  169.  
  170. FUNCTION {field.or.null}
  171. { duplicate$ empty$
  172.     { pop$ "" }
  173.     'skip$
  174.   if$
  175. }
  176.  
  177. FUNCTION {emphasize}
  178. { duplicate$ empty$
  179.     { pop$ "" }
  180.     { "{\em " swap$ * "}" * }
  181.   if$
  182. }
  183.  
  184. FUNCTION {embolden}
  185. { duplicate$ empty$
  186.     { pop$ "" }
  187.     { "{\bf " swap$ * "}" * }
  188.   if$
  189. }
  190.  
  191. FUNCTION {paren}
  192. { duplicate$ empty$
  193.     { pop$ "" }
  194.     { "(" swap$ * ")" * }
  195.   if$
  196. }
  197.  
  198. INTEGERS { nameptr namesleft numnames }
  199.  
  200. FUNCTION {format.names}
  201. { 's :=
  202.   #1 'nameptr :=
  203.   s num.names$ 'numnames :=
  204.   numnames 'namesleft :=
  205.     { namesleft #0 > }
  206.     { s nameptr "{f.~}{vv~}{ll}{, jj}" format.name$ 't :=
  207.       nameptr #1 >
  208.     { namesleft #1 >
  209.         { ", " * t * }
  210.         { numnames #2 >
  211.         { "," * }
  212.         'skip$
  213.           if$
  214.           t "others" =
  215.         { " et~al." * }
  216.         { " and " * t * }
  217.           if$
  218.         }
  219.       if$
  220.     }
  221.     't
  222.       if$
  223.       nameptr #1 + 'nameptr :=
  224.       namesleft #1 - 'namesleft :=
  225.     }
  226.   while$
  227. }
  228.  
  229. FUNCTION {format.authors}
  230. { author empty$
  231.     { "" }
  232.     { author format.names }
  233.   if$
  234. }
  235.  
  236. FUNCTION {format.editors}
  237. { editor empty$
  238.     { "" }
  239.     { editor format.names
  240.       editor num.names$ #1 >
  241.     { ", editors" * }
  242.     { ", editor" * }
  243.       if$
  244.     }
  245.   if$
  246. }
  247.  
  248. FUNCTION {format.edited}
  249. { editor empty$
  250.     { "" }
  251.     { "edited by " editor format.names * }
  252.   if$
  253. }
  254.  
  255. FUNCTION {format.title}
  256. { title empty$
  257.     { "" }
  258.     { title "t" change.case$ }
  259.   if$
  260. }
  261.  
  262. FUNCTION {n.dashify}
  263. { 't :=
  264.   ""
  265.     { t empty$ not }
  266.     { t #1 #1 substring$ "-" =
  267.     { t #1 #2 substring$ "--" = not
  268.         { "--" *
  269.           t #2 global.max$ substring$ 't :=
  270.         }
  271.         {   { t #1 #1 substring$ "-" = }
  272.         { "-" *
  273.           t #2 global.max$ substring$ 't :=
  274.         }
  275.           while$
  276.         }
  277.       if$
  278.     }
  279.     { t #1 #1 substring$ *
  280.       t #2 global.max$ substring$ 't :=
  281.     }
  282.       if$
  283.     }
  284.   while$
  285. }
  286.  
  287. FUNCTION {first.page}
  288. { 't :=
  289.   ""
  290.     {  t empty$ not t #1 #1 substring$ "-" = not and }
  291.     { t #1 #1 substring$ *
  292.       t #2 global.max$ substring$ 't :=
  293.     }
  294.   while$
  295. }
  296.  
  297. FUNCTION {format.date}
  298. { year empty$
  299.     { "" }
  300.     'year
  301.   if$
  302. }
  303.  
  304. FUNCTION {format.btitle}
  305. { title emphasize
  306. }
  307.  
  308. FUNCTION {tie.or.space.connect}
  309. { duplicate$ text.length$ #3 <
  310.     { "~" }
  311.     { " " }
  312.   if$
  313.   swap$ * *
  314. }
  315.  
  316. FUNCTION {either.or.check}
  317. { empty$
  318.     'pop$
  319.     { "can't use both " swap$ * " fields in " * cite$ * warning$ }
  320.   if$
  321. }
  322.  
  323. FUNCTION {format.bvolume}
  324. { volume empty$
  325.     { "" }
  326.     { "volume" volume tie.or.space.connect
  327.       series empty$
  328.     'skip$
  329.     { " of " * series emphasize * }
  330.       if$
  331.       "volume and number" number either.or.check
  332.     }
  333.   if$
  334. }
  335.  
  336. FUNCTION {format.number.series}
  337. { volume empty$
  338.     { number empty$
  339.     { series field.or.null }
  340.     { output.state mid.sentence =
  341.         { "number" }
  342.         { "Number" }
  343.       if$
  344.       number tie.or.space.connect
  345.       series empty$
  346.         { "there's a number but no series in " cite$ * warning$ }
  347.         { " in " * series * }
  348.       if$
  349.     }
  350.       if$
  351.     }
  352.     { "" }
  353.   if$
  354. }
  355.  
  356. FUNCTION {format.edition}
  357. { edition empty$
  358.     { "" }
  359.     { output.state mid.sentence =
  360.     { edition "l" change.case$ " edition" * }
  361.     { edition "t" change.case$ " edition" * }
  362.       if$
  363.     }
  364.   if$
  365. }
  366.  
  367. INTEGERS { multiresult }
  368.  
  369. FUNCTION {multi.page.check}
  370. { 't :=
  371.   #0 'multiresult :=
  372.     { multiresult not
  373.       t empty$ not
  374.       and
  375.     }
  376.     { t #1 #1 substring$
  377.       duplicate$ "-" =
  378.       swap$ duplicate$ "," =
  379.       swap$ "+" =
  380.       or or
  381.     { #1 'multiresult := }
  382.     { t #2 global.max$ substring$ 't := }
  383.       if$
  384.     }
  385.   while$
  386.   multiresult
  387. }
  388.  
  389. FUNCTION {format.pages}
  390. { pages empty$
  391.     { "" }
  392.     { pages multi.page.check
  393.     { "pp." pages n.dashify tie.or.space.connect }
  394.     { "p." pages tie.or.space.connect }
  395.       if$
  396.     }
  397.   if$
  398. }
  399.  
  400. FUNCTION {format.pages.a}
  401. { pages empty$
  402.     { "" }
  403.     { "p." pages first.page tie.or.space.connect }
  404.   if$
  405. }
  406.  
  407. FUNCTION {format.vol.num.pages}
  408. { volume field.or.null embolden
  409.   " " swap$ * *
  410.   pages empty$
  411.     'skip$
  412.     { duplicate$ empty$
  413.     { pop$ format.pages.a }
  414.     { ", " * pages first.page * }
  415.       if$
  416.     }
  417.   if$
  418. }
  419.  
  420. FUNCTION {format.chapter.pages}
  421. { chapter empty$
  422.     'format.pages
  423.     { type empty$
  424.     { "chapter" }
  425.     { type "l" change.case$ }
  426.       if$
  427.       chapter tie.or.space.connect
  428.       pages empty$
  429.     'skip$
  430.     { ", " * format.pages * }
  431.       if$
  432.     }
  433.   if$
  434. }
  435.  
  436. FUNCTION {format.in.ed.booktitle}
  437. { booktitle empty$
  438.     { "" }
  439.     { editor empty$
  440.     { "in " booktitle emphasize * }
  441.     { "in " booktitle emphasize * ", " * format.edited * }
  442.       if$
  443.     }
  444.   if$
  445. }
  446.  
  447. FUNCTION {empty.misc.check}
  448. { author empty$ title empty$ howpublished empty$
  449.   month empty$ year empty$ note empty$
  450.   and and and and and
  451.     { "all relevant fields are empty in " cite$ * warning$ }
  452.     'skip$
  453.   if$
  454. }
  455.  
  456. FUNCTION {format.thesis.type}
  457. { type empty$
  458.     'skip$
  459.     { pop$
  460.       type "t" change.case$
  461.     }
  462.   if$
  463. }
  464.  
  465. FUNCTION {format.tr.number}
  466. { type empty$
  467.     { "Technical Report" }
  468.     'type
  469.   if$
  470.   number empty$
  471.     { "t" change.case$ }
  472.     { number tie.or.space.connect }
  473.   if$
  474. }
  475.  
  476. FUNCTION {format.article.crossref}
  477. { key empty$
  478.     { journal empty$
  479.     { "need key or journal for " cite$ * " to crossref " * crossref *
  480.       warning$
  481.       ""
  482.     }
  483.     { "In " journal * }
  484.       if$
  485.     }
  486.     { "In " key * }
  487.   if$
  488.   " \cite{" * crossref * "}" *
  489. }
  490.  
  491. FUNCTION {format.crossref.editor}
  492. { editor #1 "{vv~}{ll}" format.name$
  493.   editor num.names$ duplicate$
  494.   #2 >
  495.     { pop$ " et~al." * }
  496.     { #2 <
  497.     'skip$
  498.     { editor #2 "{ff }{vv }{ll}{ jj}" format.name$ "others" =
  499.         { " et~al." * }
  500.         { " and " * editor #2 "{vv~}{ll}" format.name$ * }
  501.       if$
  502.     }
  503.       if$
  504.     }
  505.   if$
  506. }
  507.  
  508. FUNCTION {format.book.crossref}
  509. { volume empty$
  510.     { "empty volume in " cite$ * "'s crossref of " * crossref * warning$
  511.       "In "
  512.     }
  513.     { "Volume" volume tie.or.space.connect
  514.       " of " *
  515.     }
  516.   if$
  517.   editor empty$
  518.   editor field.or.null author field.or.null =
  519.   or
  520.     { key empty$
  521.     { series empty$
  522.         { "need editor, key, or series for " cite$ * " to crossref " *
  523.           crossref * warning$
  524.           "" *
  525.         }
  526.         { "{\em " * series * "\/}" * }
  527.       if$
  528.     }
  529.     { key * }
  530.       if$
  531.     }
  532.     { format.crossref.editor * }
  533.   if$
  534.   " \cite{" * crossref * "}" *
  535. }
  536.  
  537. FUNCTION {format.incoll.inproc.crossref}
  538. { editor empty$
  539.   editor field.or.null author field.or.null =
  540.   or
  541.     { key empty$
  542.     { booktitle empty$
  543.         { "need editor, key, or booktitle for " cite$ * " to crossref " *
  544.           crossref * warning$
  545.           ""
  546.         }
  547.         { "In {\em " booktitle * "\/}" * }
  548.       if$
  549.     }
  550.     { "In " key * }
  551.       if$
  552.     }
  553.     { "In " format.crossref.editor * }
  554.   if$
  555.   " \cite{" * crossref * "}" *
  556. }
  557.  
  558. FUNCTION {article}
  559. { output.bibitem
  560.   format.authors "author" output.check
  561.   new.block
  562.   crossref missing$
  563.     { journal field.or.null
  564.       format.vol.num.pages 
  565.       format.date empty$
  566.     'skip$
  567.     { duplicate$ empty$
  568.         { pop$ format.date paren }
  569.             { " " * format.date paren * }
  570.       if$
  571.     }
  572.       if$
  573.       output
  574.     }
  575.     { format.article.crossref output.nonnull
  576.       format.pages output
  577.     }
  578.   if$
  579.   new.block
  580.   note output
  581.   fin.entry
  582. }
  583.  
  584. FUNCTION {book}
  585. { output.bibitem
  586.   author empty$
  587.     { format.editors "author and editor" output.check }
  588.     { format.authors output.nonnull
  589.       crossref missing$
  590.     { "author and editor" editor either.or.check }
  591.     'skip$
  592.       if$
  593.     }
  594.   if$
  595.   new.block
  596.   format.btitle "title" output.check
  597.   crossref missing$
  598.     { format.bvolume output
  599.       new.block
  600.       format.number.series output
  601.       new.sentence
  602.       publisher "publisher" output.check
  603.       address output
  604.     }
  605.     { new.block
  606.       format.book.crossref output.nonnull
  607.     }
  608.   if$
  609.   format.edition output
  610.   format.date "year" output.check
  611.   new.block
  612.   note output
  613.   fin.entry
  614. }
  615.  
  616. FUNCTION {booklet}
  617. { output.bibitem
  618.   format.authors output
  619.   new.block
  620.   format.title "title" output.check
  621.   howpublished address new.block.checkb
  622.   howpublished output
  623.   address output
  624.   format.date output
  625.   new.block
  626.   note output
  627.   fin.entry
  628. }
  629.  
  630. FUNCTION {inbook}
  631. { output.bibitem
  632.   author empty$
  633.     { format.editors "author and editor" output.check }
  634.     { format.authors output.nonnull
  635.       crossref missing$
  636.     { "author and editor" editor either.or.check }
  637.     'skip$
  638.       if$
  639.     }
  640.   if$
  641.   new.block
  642.   format.btitle "title" output.check
  643.   crossref missing$
  644.     { format.bvolume output
  645.       format.chapter.pages "chapter and pages" output.check
  646.       new.block
  647.       format.number.series output
  648.       new.sentence
  649.       publisher "publisher" output.check
  650.       address output
  651.     }
  652.     { format.chapter.pages "chapter and pages" output.check
  653.       new.block
  654.       format.book.crossref output.nonnull
  655.     }
  656.   if$
  657.   format.edition output
  658.   format.date "year" output.check
  659.   new.block
  660.   note output
  661.   fin.entry
  662. }
  663.  
  664. FUNCTION {incollection}
  665. { output.bibitem
  666.   format.authors "author" output.check
  667.   new.block
  668.   crossref missing$
  669.     { format.in.ed.booktitle "booktitle" output.check
  670.       new.sentence
  671.       publisher "publisher" output.check
  672.       address output
  673.       format.edition output
  674.       format.date "year" output.check
  675.       format.bvolume output
  676.       format.number.series output
  677.       format.chapter.pages output
  678.     }
  679.     { format.incoll.inproc.crossref output.nonnull
  680.       format.chapter.pages output
  681.     }
  682.   if$
  683.   new.block
  684.   note output
  685.   fin.entry
  686. }
  687.  
  688. FUNCTION {inproceedings}
  689. { output.bibitem
  690.   format.authors "author" output.check
  691.   new.block
  692.   format.title "title" output.check
  693.   new.block
  694.   crossref missing$
  695.     { format.in.ed.booktitle "booktitle" output.check
  696.       format.bvolume output
  697.       format.number.series output
  698.       format.pages output
  699.       address empty$
  700.     { organization publisher new.sentence.checkb
  701.       organization output
  702.       publisher output
  703.       format.date "year" output.check
  704.     }
  705.     { address output.nonnull
  706.       format.date "year" output.check
  707.       new.sentence
  708.       organization output
  709.       publisher output
  710.     }
  711.       if$
  712.     }
  713.     { format.incoll.inproc.crossref output.nonnull
  714.       format.pages output
  715.     }
  716.   if$
  717.   new.block
  718.   note output
  719.   fin.entry
  720. }
  721.  
  722. FUNCTION {conference} { inproceedings }
  723.  
  724. FUNCTION {manual}
  725. { output.bibitem
  726.   author empty$
  727.     { organization empty$
  728.     'skip$
  729.     { organization output.nonnull
  730.       address output
  731.     }
  732.       if$
  733.     }
  734.     { format.authors output.nonnull }
  735.   if$
  736.   new.block
  737.   format.btitle "title" output.check
  738.   author empty$
  739.     { organization empty$
  740.     { address new.block.checka
  741.       address output
  742.     }
  743.     'skip$
  744.       if$
  745.     }
  746.     { organization address new.block.checkb
  747.       organization output
  748.       address output
  749.     }
  750.   if$
  751.   format.edition output
  752.   format.date output
  753.   new.block
  754.   note output
  755.   fin.entry
  756. }
  757.  
  758. FUNCTION {mastersthesis}
  759. { output.bibitem
  760.   format.authors "author" output.check
  761.   new.block
  762.   format.title "title" output.check
  763.   new.block
  764.   "Master's thesis" format.thesis.type output.nonnull
  765.   school "school" output.check
  766.   address output
  767.   format.date "year" output.check
  768.   new.block
  769.   note output
  770.   fin.entry
  771. }
  772.  
  773. FUNCTION {misc}
  774. { output.bibitem
  775.   format.authors output
  776.   title howpublished new.block.checkb
  777.   format.title output
  778.   howpublished new.block.checka
  779.   howpublished output
  780.   format.date output
  781.   new.block
  782.   note output
  783.   fin.entry
  784.   empty.misc.check
  785. }
  786.  
  787. FUNCTION {phdthesis}
  788. { output.bibitem
  789.   format.authors "author" output.check
  790.   new.block
  791.   format.btitle "title" output.check
  792.   new.block
  793.   "PhD thesis" format.thesis.type output.nonnull
  794.   school "school" output.check
  795.   address output
  796.   format.date "year" output.check
  797.   new.block
  798.   note output
  799.   fin.entry
  800. }
  801.  
  802. FUNCTION {proceedings}
  803. { output.bibitem
  804.   editor empty$
  805.     { organization output }
  806.     { format.editors output.nonnull }
  807.   if$
  808.   new.block
  809.   format.btitle "title" output.check
  810.   format.bvolume output
  811.   format.number.series output
  812.   address empty$
  813.     { editor empty$
  814.     { publisher new.sentence.checka }
  815.     { organization publisher new.sentence.checkb
  816.       organization output
  817.     }
  818.       if$
  819.       publisher output
  820.       format.date "year" output.check
  821.     }
  822.     { address output.nonnull
  823.       format.date "year" output.check
  824.       new.sentence
  825.       editor empty$
  826.     'skip$
  827.     { organization output }
  828.       if$
  829.       publisher output
  830.     }
  831.   if$
  832.   new.block
  833.   note output
  834.   fin.entry
  835. }
  836.  
  837. FUNCTION {techreport}
  838. { output.bibitem
  839.   format.authors "author" output.check
  840.   new.block
  841.   format.title "title" output.check
  842.   new.block
  843.   format.tr.number output.nonnull
  844.   institution "institution" output.check
  845.   address output
  846.   format.date "year" output.check
  847.   new.block
  848.   note output
  849.   fin.entry
  850. }
  851.  
  852. FUNCTION {unpublished}
  853. { output.bibitem
  854.   format.authors "author" output.check
  855.   new.block
  856.   format.title "title" output.check
  857.   new.block
  858.   note "note" output.check
  859.   format.date output
  860.   fin.entry
  861. }
  862.  
  863. FUNCTION {default.type} { misc }
  864.  
  865. MACRO {jan} {"Jan."}
  866.  
  867. MACRO {feb} {"Feb."}
  868.  
  869. MACRO {mar} {"Mar."}
  870.  
  871. MACRO {apr} {"Apr."}
  872.  
  873. MACRO {may} {"May"}
  874.  
  875. MACRO {jun} {"June"}
  876.  
  877. MACRO {jul} {"July"}
  878.  
  879. MACRO {aug} {"Aug."}
  880.  
  881. MACRO {sep} {"Sept."}
  882.  
  883. MACRO {oct} {"Oct."}
  884.  
  885. MACRO {nov} {"Nov."}
  886.  
  887. MACRO {dec} {"Dec."}
  888.  
  889. MACRO {acmcs} {"ACM Comput. Surv."}
  890.  
  891. MACRO {acta} {"Acta Inf."}
  892.  
  893. MACRO {cacm} {"Commun. ACM"}
  894.  
  895. MACRO {ibmjrd} {"IBM J. Res. Dev."}
  896.  
  897. MACRO {ibmsj} {"IBM Syst.~J."}
  898.  
  899. MACRO {ieeese} {"IEEE Trans. Softw. Eng."}
  900.  
  901. MACRO {ieeetc} {"IEEE Trans. Comput."}
  902.  
  903. MACRO {ieeetcad}
  904.  {"IEEE Trans. Comput.-Aided Design Integrated Circuits"}
  905.  
  906. MACRO {ipl} {"Inf. Process. Lett."}
  907.  
  908. MACRO {jacm} {"J.~ACM"}
  909.  
  910. MACRO {jcss} {"J.~Comput. Syst. Sci."}
  911.  
  912. MACRO {scp} {"Sci. Comput. Programming"}
  913.  
  914. MACRO {sicomp} {"SIAM J. Comput."}
  915.  
  916. MACRO {tocs} {"ACM Trans. Comput. Syst."}
  917.  
  918. MACRO {tods} {"ACM Trans. Database Syst."}
  919.  
  920. MACRO {tog} {"ACM Trans. Gr."}
  921.  
  922. MACRO {toms} {"ACM Trans. Math. Softw."}
  923.  
  924. MACRO {toois} {"ACM Trans. Office Inf. Syst."}
  925.  
  926. MACRO {toplas} {"ACM Trans. Prog. Lang. Syst."}
  927.  
  928. MACRO {tcs} {"Theoretical Comput. Sci."}
  929.  
  930. MACRO {advp} {"Adv. Phys."}
  931. MACRO {ajp} {"Am. J. Phys."}
  932. MACRO {ao} {"Appl. Opt."}
  933. MACRO {apl} {"Appl. Phys. Lett."}
  934. MACRO {apj} {"Astrophys. J."}
  935. MACRO {baps} {"Bull. Am. Phys. Soc."}
  936. MACRO {cpc} {"Computer Phys. Comm."}
  937. MACRO {cppcf} {"Comments Plasma Phys. Controlled Fusion"}
  938. MACRO {fed} {"Fusion Eng. Design"}
  939. MACRO {ft} {"Fusion Tech."}
  940. MACRO {ieeens} {"IEEE Trans. Nucl. Sci."}
  941. MACRO {ieeeps} {"IEEE Trans. Plasma Sci."}
  942. MACRO {ijimw} {"Int. J. Infrared Millimeter Waves"}
  943. MACRO {ip} {"Infrared Phys."}
  944. MACRO {jap} {"J. Appl. Phys."}
  945. MACRO {jcp} {"J. Comput. Phys."}
  946. MACRO {jetp} {"Sov. Phys.-JETP"}
  947. MACRO {jfe} {"J. Fusion Energy"}
  948. MACRO {jfm} {"J. Fluid Mech."}
  949. MACRO {jgr} {"J. Geophys. Res."}
  950. MACRO {jmp} {"J. Math. Phys."}
  951. MACRO {jne} {"J. Nucl. Energy"}
  952. MACRO {jnec} {"J. Nucl. Energy, Part C"}
  953. MACRO {jnm} {"J. Nucl. Mater."}
  954. MACRO {josa} {"J. Opt. Soc. Am."}
  955. MACRO {jpp} {"J. Plasma Phys."}
  956. MACRO {jpsj} {"J. Phys. Soc. Jpn"}
  957. MACRO {jvst} {"J. Vac. Sci. Technol."}
  958. MACRO {nedf} {"Nucl. Eng. Design/Fusion"}
  959. MACRO {nf} {"Nucl. Fusion"}
  960. MACRO {nim} {"Nucl. Instrum. Methods"}
  961. MACRO {nimpr} {"Nucl. Instrum. Methods Phys. Research"}
  962. MACRO {nt/f} {"Nucl. Tech./Fusion"}
  963. MACRO {pf} {"Phys. Fluids"}
  964. MACRO {pfa} {"Phys. Fluids A"}
  965. MACRO {pfb} {"Phys. Fluids B"}
  966. MACRO {pl} {"Phys. Lett."}
  967. MACRO {pla} {"Phys. Lett. A"}
  968. MACRO {pnas} {"Proc. Nat. Acad. Sci. USA"}
  969. MACRO {pp} {"Plasma Phys."}
  970. MACRO {ppcf} {"Plasma Phys. Controlled Fusion"}
  971. MACRO {prl} {"Phys. Rev. Lett."}
  972. MACRO {pr} {"Phys. Rev."}
  973. MACRO {pra} {"Phys. Rev. A"}
  974. MACRO {ps} {"Physica Scripta"}
  975. MACRO {rmp} {"Rev. Mod. Phys."}
  976. MACRO {rsi} {"Rev. Sci. Instrum."}
  977. MACRO {sjpp} {"Sov. J. Plasma Phys."}
  978. MACRO {spd} {"Sov. Phys.-Dokl."}
  979. MACRO {sptp} {"Sov. Phys.-Tech. Phys."}
  980. MACRO {spu} {"Sov. Phys.-Usp."}
  981.  
  982. READ
  983.  
  984. STRINGS { longest.label }
  985.  
  986. INTEGERS { number.label longest.label.width }
  987.  
  988. FUNCTION {initialize.longest.label}
  989. { "" 'longest.label :=
  990.   #1 'number.label :=
  991.   #0 'longest.label.width :=
  992. }
  993.  
  994. FUNCTION {longest.label.pass}
  995. { number.label int.to.str$ 'label :=
  996.   number.label #1 + 'number.label :=
  997.   label width$ longest.label.width >
  998.     { label 'longest.label :=
  999.       label width$ 'longest.label.width :=
  1000.     }
  1001.     'skip$
  1002.   if$
  1003. }
  1004.  
  1005. EXECUTE {initialize.longest.label}
  1006.  
  1007. ITERATE {longest.label.pass}
  1008.  
  1009. FUNCTION {begin.bib}
  1010. { preamble$ empty$
  1011.     'skip$
  1012.     { preamble$ write$ newline$ }
  1013.   if$
  1014.   "\begin{thebibliography}{"  longest.label  * "}" * write$ newline$
  1015. }
  1016.  
  1017. EXECUTE {begin.bib}
  1018.  
  1019. EXECUTE {init.state.consts}
  1020.  
  1021. ITERATE {call.type$}
  1022.  
  1023. FUNCTION {end.bib}
  1024. { newline$
  1025.   "\end{thebibliography}" write$ newline$
  1026. }
  1027.  
  1028. EXECUTE {end.bib}
  1029.